iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用系列 第 7

Day 7:安裝 Self-Hosted Runner 一步一腳印

  • 分享至 

  • xImage
  •  

之前聊了GitHub Actions Runner的種類,今天我們來聊聊怎麼安裝 Self-Hosted Runner,好讓你的CI/CD流程更加靈活。

你問為啥要用 Self-Hosted Runner?如果你以後是打算在封閉的網路環境架設 GitHub Actions 或是 GitLab CI/CD Pipeline 環境,這些經驗都可以沿用過去。

準備工作

在安裝之前,確保你的機器達到GitHub對Self-Hosted Runner的基本需求。通常來說,你會需要:

  • 一台可以連接網路的機器
  • 有管理員或root權限

如何安裝

安裝過程其實很簡單,跟著我一步一步來,我會把 runner 裝在 Ubuntu 23.04 上:

  1. 前往設定頁面:在你的 GitHub repo 內點擊 Settings -> Actions -> Runners

  2. 新增 Runner:點擊 New self-hosted runners
    https://ithelp.ithome.com.tw/upload/images/20230910/20162813b6x8bd42gk.png

  3. 選擇作業系統:你會看到 OS 選項,選擇你需要的,這邊我選擇 Linux。

  4. 下載和解壓縮:照著指示下載對應的安裝包並解壓縮。
    https://ithelp.ithome.com.tw/upload/images/20230910/20162813DXdhUiHz9y.png

  5. 執行安裝腳本:打開終端機,切換到解壓縮後的目錄,然後執行安裝腳本。
    https://ithelp.ithome.com.tw/upload/images/20230910/20162813gqeJwFOuzT.png

PS. 如果你要使用 root 安裝 runner 的話 (不建議),需要在執行 config.sh 前多設定一個環境變數 RUNNER_ALLOW_RUNASROOT,如下

RUNNER_ALLOW_RUNASROOT="1" ./config.sh --url __URL__ --token __TOKEN__
  1. 設定 runner 資訊:我一路按 Enter,全部使用預設值
    https://ithelp.ithome.com.tw/upload/images/20230910/20162813ps5ZSiQwmW.png

  2. 執行 Runner
    一樣在你解壓縮 runner 的目錄下 (如果你照著官方做法的話應該是叫做 actions-runner) 輸入 ./run.sh 來啟動 runner

PS. 如果你要使用 root 執行 runner 的話 (不建議),需要在執行 config.sh 前多設定一個環境變數 RUNNER_ALLOW_RUNASROOT,如下

RUNNER_ALLOW_RUNASROOT="1" ./run.sh 

https://ithelp.ithome.com.tw/upload/images/20230910/20162813gSJaAwfjF4.png

大概就是這樣,啟動成功後,你的Self-Hosted Runner就會出現在 GitHub 倉庫的Runners列表中。
https://ithelp.ithome.com.tw/upload/images/20230910/20162813wNzYaNG7YC.png

提醒

  • 你可以在安裝時加上--labels參數,給你的Runner貼上一些標籤,方便日後管理。
  • 權限問題:你如果不是使用 container 方式安裝的話,注意你安裝還有執行 runner 時的帳號是否有 root 權限,如果使用 GitHub Actions 的人只有你自己或是一小群信任的夥伴的話倒是沒差,但如果你是要為 public repository 設定 CI/CD 的話,小心有人會利用發送 pull request 的時候在 Actions workflow 塞入惡意程式碼搞壞你 self-hosted runner 所在伺服器。因此 GitHub 建議 public repository 還是使用他們提供的 runner 會比較安全。

安裝Self-Hosted Runner其實相當簡單和直觀。希望這篇文章能讓你輕鬆上手,往後你的CI/CD流程都能更便捷,更貼合自己的需求。


上一篇
Day 6:runner 在 GitHub Actions 的作用與執行任務的方式
下一篇
Day 8:Proxy 和 GitHub Actions 的環境變數設定
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言